home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / Table / Sources / Content.h < prev    next >
Encoding:
Text File  |  1996-08-16  |  6.4 KB  |  219 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                Content.h
  4. //    Release Version:    $ ODF 1 $ 
  5. //
  6. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef CONTENT_H
  11. #define CONTENT_H
  12.  
  13. #ifndef FWCONTNG_H
  14. #include "FWContng.h"
  15. #endif
  16.  
  17. #ifndef CELL_H
  18. #include "Cell.h"
  19. #endif
  20.  
  21. #ifndef CONSTANT_H
  22. #include "Constant.h"
  23. #endif
  24.  
  25. #ifndef PROXY_H
  26. #include "Proxy.h"
  27. #endif
  28.  
  29. //========================================================================================
  30. //    Forward Declarations
  31. //========================================================================================
  32.  
  33. class CTablePart;
  34. class CTableProxy;
  35.  
  36. //========================================================================================
  37. //    class CTableContent
  38. //========================================================================================
  39.  
  40. class CTableContent : public FW_CEmbeddingContent
  41. {
  42.   public:
  43.   
  44.     FW_DECLARE_AUTO(CTableContent)
  45.     
  46.     friend class CTableProxysIterator;
  47.     
  48. //----------------------------------------------------------------------------------------
  49. //    Initialization/Destruction
  50. //
  51. public:    
  52.     CTableContent(Environment* ev, CTablePart* part);
  53.     virtual ~CTableContent();
  54.  
  55. //----------------------------------------------------------------------------------------
  56. //    Inherited API
  57. //
  58.     virtual void                    Externalize(Environment* ev,
  59.                                             ODStorageUnit* storageUnit, 
  60.                                             FW_EStorageKinds storageKind,
  61.                                             FW_CCloneInfo* cloneInfo);
  62.     virtual FW_Boolean                Internalize(Environment* ev,
  63.                                             ODStorageUnit* storageUnit, 
  64.                                             FW_EStorageKinds storageKind,
  65.                                             FW_CCloneInfo* cloneInfo);
  66.                                                       
  67.     virtual FW_MProxy*                IsDataOnlyOneProxy(Environment* ev) const;
  68.                                     
  69. //----------------------------------------------------------------------------------------
  70. //    New API
  71. //
  72. public:
  73.     // ----- Resizing -----
  74.     void                Resize(Environment* ev, 
  75.                                 const CCell& cell, 
  76.                                 ETableLoc tl, 
  77.                                 const FW_CPoint& delta);
  78.                                           
  79.     
  80.     // ----- Add/Remove proxys -----
  81.     void                AddProxy(CTableProxy* proxy);
  82.     void                RemoveProxy(CTableProxy* proxy);
  83.  
  84.     // ----- Getters/setters -----
  85.     const CCell&        GetSize() const;
  86.     FW_Fixed            GetWidth (short c) const;
  87.     FW_Fixed            GetHeight(short r) const;
  88.     void                SetWidth (short c, FW_Fixed w);
  89.     void                SetHeight(short r, FW_Fixed h);
  90.     
  91.     // ----- Coordinates from cell -----
  92.     FW_Fixed            FindLeft(short col) const;
  93.     FW_Fixed            FindTop (short row) const;
  94.     void                FindRect(const CCell& cell,
  95.                                  FW_CRect& rect)  const;
  96.                           
  97.     // ----- Cell -> proxy
  98.     CTableProxy*        CellToProxy(const CCell& cell) const;
  99.  
  100. //----------------------------------------------------------------------------------------
  101. //    Data Members
  102. //
  103. protected:
  104.     CTablePart*                                fTablePart;
  105.     CTableProxyCollection*                    fProxys;
  106.     
  107.     // ----- Current size in memory -----
  108.     CCell                                    fCells;        
  109.  
  110.     // ----- Width and height of cells -----
  111.     FW_Fixed                                fWidth[kMaxCols];
  112.     FW_Fixed                                fHeight[kMaxRows];
  113. };
  114.  
  115. //========================================================================================
  116. // class CTableProxysIterator
  117. //========================================================================================
  118.  
  119. class CTableProxysIterator : public CTableProxyCollectionIterator
  120. {
  121. public:
  122.     FW_DECLARE_AUTO(CTableProxysIterator)
  123.     
  124.     CTableProxysIterator(CTableContent* content) :
  125.         CTableProxyCollectionIterator(content->fProxys){}
  126.     ~CTableProxysIterator() {}
  127. };
  128.  
  129. //========================================================================================
  130. //    class CTableSelectionContent
  131. //========================================================================================
  132.  
  133. class CTableSelectionContent : public FW_CEmbeddingContent
  134. {
  135.   public:
  136.   
  137.     FW_DECLARE_AUTO(CTableSelectionContent)
  138.     
  139. //----------------------------------------------------------------------------------------
  140. //    Initialization/Destruction
  141. //
  142. public:    
  143.     CTableSelectionContent(Environment* ev, CTablePart* part, CTableContent* content);
  144.     virtual ~CTableSelectionContent();
  145.  
  146. //----------------------------------------------------------------------------------------
  147. //    Inherited API
  148. //
  149. public:    
  150.     virtual FW_MProxy*        IsDataOnlyOneProxy(Environment* ev) const;
  151.  
  152.     virtual void            Externalize(Environment* ev,
  153.                                         ODStorageUnit* storageUnit, 
  154.                                         FW_EStorageKinds storageKind,
  155.                                         FW_CCloneInfo* cloneInfo);
  156.  
  157.     virtual FW_Boolean        Internalize(Environment* ev,
  158.                                         ODStorageUnit* storageUnit, 
  159.                                         FW_EStorageKinds storageKind,
  160.                                         FW_CCloneInfo* cloneInfo);
  161.  
  162.     virtual void            SingleEmbeddedFrameInternalized(Environment* ev, 
  163.                                         FW_CEmbeddingFrame* scopeFrame,
  164.                                         ODPart* embeddedPart, 
  165.                                         ODFrame* embeddedFrame,
  166.                                         ODShape* suggestedShape,
  167.                                         ODTypeToken viewType);
  168.  
  169.     virtual ODShape*        CreateDataFrameShape(Environment* ev) const;
  170.  
  171. //----------------------------------------------------------------------------------------
  172. //    New API
  173. //
  174. public:    
  175.     // ----- Getters/Setters -----
  176.     CCell                    GetCell() const;
  177.     void                    SetCell(const CCell& cell);
  178.  
  179.     CTableProxy*            GetSelectedProxy(Environment* ev) const;
  180.     
  181. //----------------------------------------------------------------------------------------
  182. //    Data Members
  183. //
  184. private:
  185.     CTableContent*            fTableContent;
  186.     CTablePart*                fTablePart;
  187.     CCell                    fCell;    
  188. };
  189.  
  190. //========================================================================================
  191. //    Inlines
  192. //========================================================================================
  193.  
  194. //----------------------------------------------------------------------------------------
  195. //    CTableContent::GetSize
  196. //----------------------------------------------------------------------------------------
  197. inline const CCell& CTableContent::GetSize() const
  198. {
  199.     return fCells;
  200. }
  201.  
  202. //----------------------------------------------------------------------------------------
  203. //    CTableSelectionContent::GetCell
  204. //----------------------------------------------------------------------------------------
  205. inline CCell CTableSelectionContent::GetCell() const
  206. {
  207.     return fCell;
  208. }
  209.  
  210. //----------------------------------------------------------------------------------------
  211. //    CTableSelectionContent::SetCell
  212. //----------------------------------------------------------------------------------------
  213. inline void CTableSelectionContent::SetCell(const CCell& cell)
  214. {
  215.     fCell = cell;
  216. }
  217.  
  218.  
  219. #endif